One or more aspects relate, in general, to facilitating processing in multi-threaded processors, and in particular, to facilitating collection of data in such processors.
A processor may include multiple threads, such as multiple hardware threads, that have instructions executing simultaneously. This is referred to as simultaneous multi-threading (SMT).
Typically, a thread executes customer applications and may also perform data collection for hardware measurements/samples of the processor on which the thread is executing. The data collected is placed in a buffer on the processor. Today, this buffer is not read from or written to at the same time from different threads; it is only accessed by one thread at a time. In regular intervals, the thread pauses execution of the customer application it is executing to invoke a task to read out and store away the hardware samples into memory. This takes away execution cycles from the thread and impacts performance.